<template>
  <div class="html1_17">
      <h1>1.17 HTML5 Web Workers</h1>
      <p>
        <pre>
          web worker 是运行在后台的 JavaScript，不会影响页面的性能。当在 HTML 页面中执行脚本时，页面的状态是不可响应的，直到脚本已完成。
web worker 是运行在后台的 JavaScript，独立于其他脚本，不会影响页面的性能。您可以继续做任何愿意做的事情：点击、选取内容等等，而此时 web worker 在后台运行。
浏览器支持：所有主流浏览器均支持 web worker，除了 Internet Explorer。
1.检测 Web Worker 支持
在创建 web worker 之前，请检测用户的浏览器是否支持它：
if(typeof(Worker)!=="undefined")
  {
  // Yes! Web worker support!
  // Some code.....
  }
else
  {
  // Sorry! No Web Worker support..
  }
2.创建 web worker 文件
现在，让我们在一个外部 JavaScript 中创建我们的 web worker。在这里，我们创建了计数脚本。该脚本存储于 "demo_workers.js" 文件中：
var i=0;
function timedCount()
{
i=i+1;postMessage(i);
setTimeout("timedCount()",500);
}
timedCount();
以上代码中重要的部分是 postMessage() 方法 - 它用于向 HTML 页面传回一段消息。
注释：web worker 通常不用于如此简单的脚本，而是用于更耗费 CPU 资源的任务。
3.创建 Web Worker 对象
我们已经有了 web worker 文件，现在我们需要从HTML 页面调用它。面的代码检测是否存在worker，如果不存在，它会创建一个新的web worker 对象，然后运行 "demo_workers.js" 中的代码：
if(typeof(w)=="undefined")
  {
  w=new Worker("demo_workers.js");
  }
然后我们就可以从 web worker 发生和接收消息了。
向 web worker 添加一个 "onmessage" 事件监听器：
w.onmessage=function(event){
document.getElementById("result").innerHTML=event.data;
};
当 web worker 传递消息时，会执行事件监听器中的代码。event.data 中存有来自 event.data 的数据。
4.终止 Web Worker
当我们创建 web worker 对象后，它会继续监听消息（即使在外部脚本完成之后）直到其被终止为止。
如需终止 web worker，并释放浏览器/计算机资源，请使用 terminate() 方法：
w.terminate();
完整的 Web Worker 实例代码
我们已经看到了.js 文件中的 Worker 代码。下面是 HTML 页面的代码：
实例
&lt;p>计数: &lt;output id="result">&lt;/output>&lt;/p>
    &lt;button onclick="startWorker()">开始 Worker&lt;/button>
    &lt;button onclick="stopWorker()">停止 Worker&lt;/button>
    &lt;br />&lt;br />
    &lt;script>
        var w;
        function startWorker() {
            if (typeof (Worker) !== "undefined") {
                if (typeof (w) == "undefined") {
                    w = new Worker("/demo.js");
                }
                w.onmessage = function (event) {
                    document.getElementById("result").innerHTML = event.data;
                };
            } else {
                document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Workers...";
            }
        }
        function stopWorker() {
            w.terminate();
        }
    &lt;/script>
        </pre>
      </p>
      <video src="../assets/h5实例视频/webworker.mp4" width="600px" controls></video>
       <img src="../assets/images/2.63.png" alt="">
  </div>
</template>

<script>
export default {

}
</script>

<style>

</style>